package com.omg.server.framework.dao;

import java.io.Serializable;
import java.sql.Connection;
import java.util.List;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.orm.ibatis.SqlMapClientTemplate;

import com.omg.server.framework.vo.ValueObject;

public abstract interface FacadeDAO {
	
	  public abstract Connection getConnection();

	  public abstract int save_Hibernate_Object(ValueObject vo);

	  public abstract int save_iBatis(String queryName, Object[] params);

	  public abstract int save_JDBC(String queryName, Object[] params);

	  public abstract int delete_Hibernate_Object(ValueObject vo);

	  public abstract int deleteByID_Hibernate_Object(Class paramClass, Serializable id);

	  public abstract int delete_JDBC(String queryName, Object[] params);

	  public abstract int delete_iBatis(String queryName, Object[] params);

	  public abstract int delete_Hibernate_NamedQuery(String queryName, Object[] params);

	  public abstract int update_Hibernate_Object(ValueObject vo);

	  public abstract int update_JDBC(String queryName, Object[] params);

	  public abstract int update_iBatis(String queryName, Object[] params);

	  public abstract int update_Hibernate_NamedQuery(String queryName, Object[] params);

	  public abstract ValueObject findByID_Hibernate_Load(Class paramClass, Serializable id);

	  public abstract ValueObject findByID_Hibernate_Get(Class paramClass, Serializable id);

	  public abstract ValueObject findByID_Hibernate_NamedQuery(String queryName, Serializable id);

	  public abstract ValueObject findByID_Hibernate_ComposedHQL(String queryName, Serializable id);

	  public abstract ValueObject findByID_iBatis(String paramString, Serializable paramSerializable);
	  
	  public abstract List findAll_Hibernate_Object(Class paramClass);

	  public abstract List findAll_JDBC(String paramString);

	  public abstract List findAll_iBatis(String paramString);

	  public abstract List findAll_Hibernate_ComposedHQL(String paramString);

	  public abstract List findAll_Hibernate_NamedQuery(String paramString);

	  public abstract List findAll_Hibernate_NamedQuery(String paramString, Object[] params);

	  public abstract List find_iBatis(String queryName, Object param, int offset, int size);

	  public abstract List find_iBatis(String paramString, Object paramObject);

	  public abstract HibernateTemplate getHibernateTemplate();

	  public abstract JdbcTemplate getJdbcTemplate();

	  public abstract SqlMapClientTemplate getSqlMapClientTemplate();

}
